#ifndef CONFIG_H
#define CONFIG_H

#include <array>
#include <QColor>
#include <QFont>
#include <complex>
#include <QFile>

#include "time_text.h"

using std::array;
using std::complex;

enum class Voice_type { insep, loose, final };      // 提示音的种类

// 窗口配置
const QColor wnd_back {"white"};        // 背景颜色

// 钟表配置
constexpr int wch_sz {130};     // 钟表半径
const QPair<double,QColor> wch_border {0.13,"#999999"};     // 钟表边框厚度和颜色
constexpr array<double,3> wch_lth { 0.5, 0.8, 0.9 };        // 时分秒针长度
const array<QColor,3> wch_clr { "black", "black", "red" };      // 时分秒针的颜色
constexpr int wch_thick {2};        // 表针粗细
const QFont wch_font {QString{"黑体"},13};        // 钟表字体
constexpr double wch_font_pos {0.8};        // 数字位置

// 秒表文字配置
const QFont clc_font {QString{"黑体"},40};        // 秒表字体
const QFile clc_limit_mess {"Time/Stop.txt"};       // 终止时间所在文件
const Tm::Time clc_limit {clc_limit_mess,Tm::State::stop};      // 自动停止的时间

// 帧率配置
constexpr int frame_speed {100};        // 帧率

// 按钮配置
constexpr int btn_pos {600};        // 按钮纵坐标位置
constexpr int btn_sz {40};      // 按钮半径大小
const complex<QFont> btn_font {{QString{"黑体"},50},{QString{"黑体"},20}};      // 按钮字体
const complex<QString> btn_ch {"▶","■"};        // 按钮播放和暂停文字
const complex<QColor> btn_clr {"#66CCFF","white"};      // 按钮背景和文字颜色

// 提示音配置
constexpr complex<int> voice_loose_count {4,1000};      // 疏松提示次数与间隔
constexpr complex<int> voice_insep_count {5,500};       // 紧密提示次数与间隔
constexpr complex<int> voice_insep {1500,400};      // 紧密提示音调和时长
constexpr complex<int> voice_loose {1500,600};      // 梳松提示音调和时长
constexpr complex<int> voice_final {1300,800};      // 最终提示音调和时长
constexpr int voice_length {voice_loose_count.real()*voice_loose_count.imag()+voice_insep_count.real()*voice_insep_count.imag()+voice_final.imag()};        // 提示音总时长

#endif // CONFIG_H
